from typing import Annotated, Any, Optional

from pydantic import Field

from owl_common.base.model import AuditEntity, VoAccess


class AgentConfigEntity(AuditEntity):
    id: Annotated[
        Optional[int],
        Field(default=None, vo=VoAccess(query=True)),
    ]
    name: Annotated[
        Optional[str],
        Field(default=None, vo=VoAccess(query=True))
    ]
    type: Annotated[
        Optional[str],
        Field(default='single', vo=VoAccess(query=True))
    ]
    graph: Annotated[
        dict | list,
        Field(default=None, vo=VoAccess(query=True))
    ]
